home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
EGAVGA.SWG
/
0163_Hardware Scrolling Routines.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-03-03
|
981b
|
65 lines
{ Someone asked for the routines for hardware scrolling. So here it is: }
procedure setaddress(ad:word); assembler;
asm
mov dx,3d4h
mov al,0ch
mov ah,[byte(ad)+1]
out dx,ax
mov al,0dh
mov ah,[byte(ad)]
out dx,ax
end;
procedure setlinecomp(ad:word); assembler;
asm
mov dx,3d4h
mov al,18h
mov ah,[byte(ad)]
out dx,ax
mov al,7
out dx,al
inc dx
in al,dx
dec dx
mov ah,[byte(ad)+1]
and ah,00000001b
shl ah,4
and al,11101111b
or al,ah
mov ah,al
mov al,7
out dx,ax
mov al,9
out dx,al
inc dx
in al,dx
dec dx
mov ah,[byte(ad)+1]
and ah,00000010b
shl ah,5
and al,10111111b
or al,ah
mov ah,al
mov al,9
out dx,ax
end;
procedure retrace; assembler;
asm
mov dx,3dah
@vert1:
in al,dx
test al,8
jz @vert1
@vert2:
in al,dx
test al,8
jnz @vert2
end;
{
There you go. Should also work in non-modex modes. Don't forget to include a
retrace.
}